<?php
require_once 'Banco.php';
require_once 'DAOEventoRepublica.php';
require_once 'Model/Imagem.php';
class DAOImagemEventoRepublica extends Banco{
    
    function getImagemPrincipal($codigoEventoRepublica) {
        $ie = NULL;
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT IER_CODIGO, IER_CODEVENTOREPUBLICA, IER_DESCRICAO, IER_IMAGEM, IER_PRINCIPAL FROM TB_IMAGEMEVENTOREPUBLICA WHERE IER_CODEVENTOREPUBLICA = ? AND lower(IER_PRINCIPAL)='s'")) {
            $sql->bind_param('i',$codigoEventoRepublica);
            $sql->execute();
            $sql->bind_result($id, $evento, $descricao, $imagem, $principal);
            $de = new DAOEventoRepublica();
            while ($sql->fetch()) {
                $ie = new Imagem();
                $ie->setCodigo($id);
                $ie->setDescricao($descricao);
                $ie->setObjeto($de->getEvento($evento));
                $ie->setImagem($imagem);
                $ie->setPrincipal($principal);
            }
            $sql->close();
        }
        $banco->close();
        return $ie;
    }
    function getImagens($codigoEventoRepublica, $limite=0) {
        $imagens = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if($limite==0){
            $query = "SELECT IER_CODIGO, IER_CODEVENTOREPUBLICA, IER_DESCRICAO, IER_IMAGEM, IER_PRINCIPAL FROM TB_IMAGEMEVENTOREPUBLICA WHERE IER_CODEVENTOREPUBLICA = ? AND lower(IER_PRINCIPAL)='n'";
        }else{
            $query = "SELECT IER_CODIGO, IER_CODEVENTOREPUBLICA, IER_DESCRICAO, IER_IMAGEM, IER_PRINCIPAL FROM TB_IMAGEMEVENTOREPUBLICA WHERE IER_CODEVENTOREPUBLICA = ? AND lower(IER_PRINCIPAL)='n' ORDER BY RAND() LIMIT ".$limite.";";
        }
        if ($sql = $banco->prepare($query)) {
            $sql->bind_param('i',$codigoEventoRepublica);
            $sql->execute();
            $sql->bind_result($id, $evento, $descricao, $imagem, $principal);
            $de = new DAOEventoRepublica();
            while ($sql->fetch()) {
                $ie = new Imagem();
                $ie->setCodigo($id);
                $ie->setDescricao($descricao);
                $ie->setObjeto($de->getEvento($evento));
                $ie->setImagem($imagem);
                $ie->setPrincipal($principal);
                $imagens[] = (object)$ie;
            }
            $sql->close();
        }
        $banco->close();
        return $imagens;
    }
    
    function addImagem(Imagem $imagem){
        Banco::conecta();
        $banco = Banco::getBanco();
        if(is_a($imagem->getObjeto(), 'EventoRepublica')){
            $evento = $imagem->getObjeto()->getCodigo();
        }else{
            $evento=NULL;
        }
        $descricao = $imagem->getDescricao();
        $img = $imagem->getImagem();
        $principal = $imagem->getPrincipal();
        if($sql = $banco->prepare("INSERT INTO TB_IMAGEMEVENTOREPUBLICA VALUES (DEFAULT, ?, ?, '{$img}', ?);")){
            $sql->bind_param('iss',$evento,$descricao,$principal);
            $sql->execute();
            $sql->close();
        }
        $banco->close();
    }
    function updateImagem(Imagem $imagem) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if (is_a($imagem->getObjeto(), 'EventoRepublica')) {
            $evento = $imagem->getObjeto()->getCodigo();
            $img = $imagem->getImagem();
            if ($this->getImagemPrincipal($evento)!= NULL) {
                if ($sql = $banco->prepare("UPDATE TB_IMAGEMEVENTOREPUBLICA SET IER_IMAGEM=? WHERE IER_CODEVENTOREPUBLICA=? AND IER_PRINCIPAL='S';")) {
                    $sql->bind_param('si', $img, $evento);
                    $sql->execute();
                    $sql->close();
                }
                $banco->close();
            }else{
                $this->addImagem($imagem);
            }
        }
    }
    function removeImagem(Imagem $imagem) {
        Banco::conecta();
        $banco = Banco::getBanco();
        $codigo = $imagem->getCodigo();
        if ($sql = $banco->prepare("UPDATE TB_IMAGEMEVENTOREPUBLICA SET IER_PRINCIPAL='R' WHERE IER_CODIGO=?;")) {
            $sql->bind_param('i', $codigo);
            $sql->execute();
            $sql->close();
        }
        $banco->close();
    }
}

?>
